/************************************************************
 * Project Name		[Thinking_In_Java]
 * File Name     	[pkg_01_basic_grammar.Example_06_Array.java]
 * Creation Date 	[15-Jun-2014]
 * 
 * Copyright© ge.y.yang@gmail.com All Rights Reserved
 * 
 * Work hard, play harder, think big and keep fit
 ************************************************************/
package pkg_01_basic_grammar;

import java.util.Arrays;
import java.util.Scanner;

/**
 * Java 数组
 * 
 * @author 不落的太阳(Sean Yang)
 * @version 1.0
 * @since JDK 6
 * 
 */
public class Example_06_Array {

	// 声明一个匿名数组
	int[] anonymous = { 1, 3, 5, 7, 8, 12 };

	/**
	 * 彩票程序
	 */
	public static void lotteryDrawing() {
		Scanner scanner = new Scanner(System.in);

		System.out.println("请输入你要抽取的数目, 如6");
		int drawNumber = scanner.nextInt();

		System.out.println("请输入你要彩票号码的最大数字, 如24");
		int maxNumber = scanner.nextInt();

		int[] numbers = new int[maxNumber];
		for (int i = 0; i < numbers.length; i++) {
			numbers[i] = i + 1;
		}

		int[] result = new int[drawNumber];// 保存抽出的数字
		for (int i = 0; i < result.length; i++) {
			int randomNum = (int) (Math.random() * maxNumber);
			result[i] = numbers[randomNum];
			// 将数组中最后一个元素赋值给numbers[randomNum], 并将maxNumber--, 保证每次抽取出不同的数字
			numbers[randomNum] = numbers[maxNumber - 1];
			maxNumber--;
		}

		Arrays.sort(result);
		System.out.println("the numbers are :  " + Arrays.toString(result));
		scanner.close();
	}

	/**
	 * 二维数组
	 */
	public static void twoDimensionArray() {
		// 声明一个int类型的二维数组
		int[][] array;
		// 给定一个要解析的字符串
		String str = "1,2;3,4,5;6,7,8";
		// 首先按照分号来对字符串进行分割, 形成一个一维数组
		String[] sFirst = str.split(";");
		// 一维字符串数组的长度就是int数组的第一维的长度
		array = new int[sFirst.length][];

		for (int i = 0; i < sFirst.length; i++) {
			// 按照逗号分割一维字符串数组
			String[] sSecond = sFirst[i].split(",");
			// int数组二维的长度是上面分割后的字符串数组的长度
			array[i] = new int[sSecond.length];
			for (int j = 0; j < sSecond.length; j++) {
				array[i][j] = Integer.parseInt(sSecond[j]);
			}
		}

		/*
		 * 增强的for循环遍历方式
		 */
		for (int[] array1 : array) {
			for (int i : array1) {
				System.out.print(i + "\t");
			}
		}
		System.out.println();
	}

	public static void main(String[] args) {
		Example_06_Array.twoDimensionArray();
		Example_06_Array.lotteryDrawing();
	}
}
